package com.imyuanma.qingyun.lowcode.service;

import com.imyuanma.qingyun.lowcode.model.data.LcpDbColumnDO;
import com.imyuanma.qingyun.lowcode.model.data.LcpDbTableDO;
import com.imyuanma.qingyun.lowcode.model.vo.LcpDbColumnVO;
import com.imyuanma.qingyun.lowcode.model.vo.LcpDbTableDetailVO;

import java.util.List;

/**
 * 数据库操作服务
 *
 * @author wangjy
 * @date 2022/05/04 15:30:33
 */
public interface ILcpDbService {
    /**
     * 查询数据库所有表
     *
     * @return
     */
    List<LcpDbTableDO> getTableList();

    /**
     * 根据表名查询表信息
     *
     * @param tableName 表名
     * @return
     */
    LcpDbTableDO getTableByTableName(String tableName);

    /**
     * 根据表名查询字段信息
     *
     * @param tableName 表名
     * @return
     */
    List<LcpDbColumnDO> getColumnListByTableName(String tableName);

    /**
     * 修改字段
     *
     * @param columnVO
     */
    void modifyDbColumn(LcpDbColumnVO columnVO);

    /**
     * 新增字段
     * @param columnVO
     */
    void addDbColumn(LcpDbColumnVO columnVO);

    /**
     * 创建数据库表
     *
     * @param tableDetailVO
     */
    void createTable(LcpDbTableDetailVO tableDetailVO);
}
